﻿@using Kendo.Mvc.UI;

@{
    ViewBag.Title = "Ngành";
}

<section class="panel">
    <header class="panel-heading">
        <h4 style="margin:0">Danh sách @ViewBag.Ajax</h4>
    </header>
    <div class="panel-body">

        <div class="table-responsive">
            @( Html.Kendo().Grid<TS2015.Models.TbNganh>()
                .Name("griddata")
                .Pageable(page => page
                        .ButtonCount(7)
                        .Info(true)
                        .Refresh(true)
                            .Messages(mess => mess
                                     .Display("{0}-{1} của {2} bản ghi.")
                                            .Empty("Không có dữ liệu")
                                            .Refresh("Làm mới")
                                            .First("Trang đầu tiên")
                                            .Last("Trang cuối cùng")
                                            .Next("Trang tiếp")
                                            .Previous("Trang trước")
                                      )
                                     .Input(true)
                                            .Messages(mess =>
                                            {
                                                mess.Of("của {0}");
                                                mess.Page("Trang");
                                            })

                                )
                            .Columns(columns =>
                                {
                                    columns.Template(@<text></text>).ClientTemplate("<input type='checkbox' class='checkbox center-block' />").Title("<input type='checkbox' class='checkbox center-block' onclick='cbChonTat(this);'/>");
                                    //columns.ClientTemplate("<input type='checkbox' #= CheckboxColumn? checked='checked': checked='' # class='chkbx' />");
                                    columns.Bound(p => p.MaNganh);
                                    columns.Bound(p => p.TenNganh);
                                    // Tham chiếu đến khóa ngoại
                                    columns.ForeignKey(p => p.MaKhoa, (System.Collections.IEnumerable)ViewBag.TbKhoa, "MaKhoa", "TenKhoa")
                                    .Title("Tên khoa");
                                    columns.Bound(p => p.MoTa);
                                    columns.Command(command =>
                                    {
                                        command.Edit().Text("Sửa").UpdateText("Cập nhật").CancelText("Hủy");
                                        command.Destroy().Text("Xóa");
                                    })
                                        .Title("Chức năng");
                                })
                    // Sửa kiểu popup
                    .Editable(editable =>
                    {
                        // Template KhoaEditor trong Shared/EditorTemplates
                        editable.Mode(GridEditMode.PopUp).TemplateName("KhoaEditor");
                        editable.ConfirmDelete("Bạn có muốn xóa?");
                        editable.Window(window =>
                        {
                            //window.Width(450);
                            window.Title("Thêm/sửa dữ liệu");
                            window.Animation(false);
                        });
                        editable.DisplayDeleteConfirmation("Bạn có muốn xóa?");
                    })
                    .Sortable()    // Cho phép sắp xếp dữ liệu
                    // Cho phép lọc dữ liệu
                    .Filterable(filterable => filterable
                            .Messages(mess => mess
                                .And("Và")
                                .Clear("Xóa")
                                .Filter("Lọc")
                                .Info("Điều kiện lọc tìm kiếm")

                                )
                                .Extra(false)

                            .Operators(operators => operators
                                .ForString(str => str.Clear()
                                    .StartsWith("Bắt đầu với")
                                    .IsEqualTo("Đúng bằng")
                                    .IsNotEqualTo("Không bao gồm")
                                )
                                .ForNumber(num => num
                                        .Clear()
                                        .IsGreaterThan("Lớn hơn")
                                        .IsEqualTo("Bằng")
                                        .IsNotEqualTo("Nhỏ hơn")
                    )))

                // Cài đặt nguồn dữ liệu
                .DataSource(dataSource => dataSource
                        .Ajax()   // Mọi thao tác thực hiện thông qua Ajax
                        .ServerOperation(false) // Ko cho gửi request bằng cách load lại trang mà thông qua Ajax

                        .PageSize(15)   // Số row hiển thị trên Grid
                        .Model(model =>
                            {
                                model.Id(p => p.MaNganh);  // Chỉ ra khóa của Grid
                                model.Field(p => p.MaNganh).Editable(false);
                                //model.Field(p => p.MaKhoa).DefaultValue(1);
                            }
                            )
                        .Sort(item =>
                        {
                            // Mặc định khi load dữ liệu lên Grid sẽ sắp xếp giảm theo Id
                            item.Add(data => data.MaNganh).Descending();
                        })
                    // Cài đặt các sự kiện khi thay đổi dữ liệu
                        .Events(events =>
                        {
                            events.Error("onError");
                            //events.Change("onRequestStart");
                            //events.Sync("sync_handler");
                            //events.Push("Success");
                            //events.Change("Success");
                            events.RequestEnd("onRequestEnd");
                            //events.RequestStart("onRequestStart");
                        })
                    // Gán Action khi thêm dữ liệu
                               .Create(update => update.Action("EditingPopup_CreateNganh", "QLDangKy"))
                    // Gán Action khi đổ dữ liệu lên Grid
                                .Read(read => read.Action("EditingPopup_ReadNganh", "QLDangKy"))
                    // Sửa
                                .Update(update => update.Action("EditingPopup_UpdateNganh", "QLDangKy"))
                    // Xóa
                                .Destroy(update => update.Action("EditingPopup_DestroyNganh", "QLDangKy"))
                )
                    // Cài đặt thanh Menu bên trên Grid
                .ToolBar(toolbar =>
                    {
                        //toolbar.Custom().Text("Xuất PDF").Name("exportPDF");
                        toolbar.Template(@<text>
                            <div class="toolbar" style="float:right">
                                <a class="btn btn-danger k-grid-add" href="#">
                                    <i class="glyphicon glyphicon-plus"></i> Thêm mới
                                </a>
                                <button class="btn btn-danger" data-toggle="modal" data-target="#myModal">
                                    Nhập bằng Excel
                                </button>
                                <button class="btn btn-danger" name="exportPDF">
                                    <i class="glyphicon glyphicon-plus"></i> Xuất PDF
                                </button>

                            </div>
                        </text>);
                    })
                                                    .Events(events =>
                                                    {
                                                        //events.Change("onEdit");
                                                        //events.Cancel("onEdit");
                                                        events.Edit("onEdit");
                                                        //events.ColumnLock
                                                    })
                    //.ClientDetailTemplateId("client-template")
            )
        </div>
    </div>
</section>

@Html.Partial("_PopupInsert")

